package dao

// 这是 SmsFlashPromotionProductRelation 的全局公开dao对象，被service层调用!
var SmsFlashPromotionProductRelationDao = smsFlashPromotionProductRelationDao{}

// 这是 sms_flash_promotion_product_relation表 的实体类
type SmsFlashPromotionProductRelation struct {
	Id                      int64   `json:"id"` // 编号
	FlashPromotionId        int64   `json:"flash_promotion_id"`
	FlashPromotionSessionId int64   `json:"flash_promotion_session_id"` // 会场编号
	ProductId               int64   `json:"product_id"`
	FlashPromotionPrice     float64 `json:"flash_promotion_price"` // 限时购价格
	FlashPromotionCount     int32   `json:"flash_promotion_count"` // 限时购数量
	FlashPromotionLimit     int32   `json:"flash_promotion_limit"` // 每人限购数量
	Sort                    int32   `json:"sort"`                  // 排序
}

// 注意:这是 SmsFlashPromotionProductRelation 的私有dao对象，只能在dao层内使用!
type smsFlashPromotionProductRelationDao struct {
	InsertTemplate func(arg []SmsFlashPromotionProductRelation) (int64, error)
	UpdateTemplate func(arg SmsFlashPromotionProductRelation) (int64, error)
	DeleteTemplate func(id int64) (int64, error) `args:"id"`
	SelectTemplate func(id int64) (SmsFlashPromotionProductRelation, error)
	List           func(arg SmsFlashPromotionProductRelationList) ([]SmsFlashPromotionProduct, error)
	GetCount       func(flashPromotionId, flashPromotionSessionId int64) (int64, error) `args:"flash_promotion_id,flash_promotion_session_id"`
}

type SmsFlashPromotionProductRelationList struct {
	FlashPromotionId        int64 `json:"flash_promotion_id" form:"flash_promotion_id"`
	FlashPromotionSessionId int64 `json:"flash_promotion_session_id" form:"flash_promotion_session_id"` // 会场编号
	PageNum                 int   `json:"page_num" form:"page_num"`
	PageSize                int   `json:"page_size" form:"page_size"`
}

// 限时购及商品信息封装
type SmsFlashPromotionProduct struct {
	Id                      int64   `json:"id" form:"id"` // 编号
	FlashPromotionId        int64   `json:"flash_promotion_id" form:"flash_promotion_id"`
	FlashPromotionSessionId int64   `json:"flash_promotion_session_id" form:"flash_promotion_session_id"` // 会场编号
	ProductId               int64   `json:"product_id" form:"product_id"`
	FlashPromotionPrice     float64 `json:"flash_promotion_price" form:"flash_promotion_price"` // 限时购价格
	FlashPromotionCount     int32   `json:"flash_promotion_count" form:"flash_promotion_count"` // 限时购数量
	FlashPromotionLimit     int32   `json:"flash_promotion_limit" form:"flash_promotion_limit"` // 每人限购数量
	Sort                    int32   `json:"sort" form:"sort"`                                   // 排序
	Product                 PmsProduct
}
